package session07.gui;

import javax.swing.*;
import java.awt.*;

public class GridFrame extends JFrame{
    private Container contentP;
    private JButton jb1;
    private JButton jb2;
    private JButton jb3;
    private JButton jb4;
    private JButton jb5;

    public GridFrame(){
        this.setSize(300,500); //设置宽、高
        Toolkit tk = Toolkit.getDefaultToolkit();
        this.setLocationRelativeTo(null);//传另一个容器就相对于另一个容器，传null就相对于屏幕
        this.setTitle("网格布局管理器");
        this.setIconImage(tk.createImage("img/hp.JPG"));//设置窗体的图片
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);//设置关闭窗口即关闭程序
        this.setResizable(true);//设置窗体大小不可变

        this.addContent();

        this.setVisible(true);//设置界面可见，永远放到最后
    }

    private void addContent() {
        this.contentP = this.getContentPane();
        /*
            把整个容器分为等大的几行几列的区域。如果放入的元素个数
            与实现分配的行列不符合，永远保证行不变。
         */
        this.contentP.setLayout(new GridLayout(3,2));

        this.jb1 = new JButton("按钮1");
        this.jb2 = new JButton("按钮2");
        this.jb3 = new JButton("按钮3");
        this.jb4 = new JButton("按钮4");
        this.jb5 = new JButton("按钮5");

        this.contentP.add(this.jb1);
        this.contentP.add(this.jb2);
        this.contentP.add(this.jb3);
        this.contentP.add(this.jb4);
        this.contentP.add(this.jb5);
        this.contentP.add(new JButton("按钮6"));
        this.contentP.add(new JButton("按钮7"));

        /*
            GridLayout的使用场景与BorderLayout差不多，也是用来
            在容器当中划分区域，然后放入子容器的，而很少用来放入组件。
         */
    }
}
